	function addTableUpdate(tbodyid,data,titles,path,id){
		let tb=$("#"+tbodyid);
		tb.empty();
		for(i in data){
			let obj=data[i];
			let tr="<tr>";
			for(let i in titles){
				tr+="<td>"+obj[titles[i]]+"</td>";
			}
			tr+="<td><a href='"+path+"="+obj[id]+"'>修改</a></td>";
			tr+="</tr>";
			tb.append($(tr));
		}
	}

	function addFormData(formid,obj){
        $("#"+formid+" :input[name]").each(function(){
                $(this).val(obj[this.name]);
            });        
    }

   function addSelect(selectid,data,val,txt){
		 let sel=$("#"+selectid);
		 sel.empty();
		for(let i in data){
			sel.append($("<option value='"+data[i][val]+"'>"+data[i][txt]+"</option>"));
		}
	 }

	  function addTab(tbodyid,data,titles){
        let tb=$("#"+tbodyid);
            for(let i in data){
                let tr="<tr>"; 
				let obj=data[i];
                for(let index in titles){
                    tr+="<td>"+obj[titles[index]]+"</td>"
                }
                tr+="</tr>";
                tb.append($(tr));
            }
    }

//获得指定表格中，指定位置的数据
//tbodyId:表格中tbody的id
//names:需要上传的参数名数组
//position：需要获得数据所在的列索引（从0开始,如果td中有文本框，则索引为负值）
function getData(tbodyid,names,positions){
	var data=[];//装载数据的数组						
	$("#"+tbodyid+"  tr").each(function(){//获得所有的tbody中的行		
		var obj=new Object();//每一行数据装入到一个对象中	
		let tds=$(this).children();//获得当前行中所有的td
		for(let i in positions){//遍历位置数组
			let index=positions[i];//获得当前要获取数据的索引位置
			if(index>=0){//如果索引位置是正数则直接取td的文本
				obj[names[i]]=$(tds[index]).text();									
			}else{//如果给定位置是负数、要获得其中文本框的值
				index=Math.abs(index);
				obj[names[i]]=$(tds[index]).find("input").val();
			}
		}							
		data.push(obj);//将装载完毕的数据对象放入到数组中
	});
	return data;
}

	//mill:毫秒数；format:时间格式
	function formatDateTime(mill, format) {
		let date=new Date(mill);
	  const o = {
		'M+': date.getMonth() + 1, // 月份
		'd+': date.getDate(), // 日
		'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 小时
		'H+': date.getHours(), // 小时
		'm+': date.getMinutes(), // 分
		's+': date.getSeconds(), // 秒
		'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
		S: date.getMilliseconds(), // 毫秒
		a: date.getHours() < 12 ? '上午' : '下午', // 上午/下午
		A: date.getHours() < 12 ? 'AM' : 'PM', // AM/PM
	  };
	  if (/(y+)/.test(format)) {//如果是年份：yyyy
		format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
	  }
	  for (let k in o) {//迭代o对象中的属性
		if (new RegExp('(' + k + ')').test(format)) {
		  format = format.replace(
			RegExp.$1,
			RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
		  );
		}
	  }
	  return format;
	}

	function showMsg(msg,title){
		let oldTitle=document.title;
		document.title=title;
		alert(msg);
		document.title=oldTitle;
	}